package gui

import (
	configpkg "github.com/liyixin123/my-cos-project/internal/config"
	"github.com/liyixin123/my-cos-project/internal/cosclient"
)

// FileInfo is re-exported for convenience across GUI subcomponents.
type FileInfo = cosclient.FileInfo

// COSClient is re-exported to keep existing component code straightforward.
type COSClient = cosclient.COSClient

// ConfigManager is an alias over the shared config.Manager.
type ConfigManager = configpkg.Manager

// Config type alias for convenience.
type Config = configpkg.Config

// NewConfigManager creates a manager bound to the shared config path.
func NewConfigManager() *ConfigManager {
	return configpkg.NewManager()
}

// NewCOSClient constructs a COS client using the shared config struct.
func NewCOSClient(cfg *Config) (*COSClient, error) {
	return cosclient.NewCOSClient(cfg)
}
